{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--BOOK_INFORMATION-->\n",
    "<a href=\"https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv\" target=\"_blank\"><img align=\"left\" src=\"data/cover.jpg\" style=\"width: 76px; height: 100px; background: white; padding: 1px; border: 1px solid black; margin-right:10px;\"></a>\n",
    "*This notebook contains an excerpt from the upcoming book [Machine Learning for OpenCV](https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv) by Michael Beyeler (expected Aug 2017).\n",
    "The code is released under the [MIT license](https://opensource.org/licenses/MIT),\n",
    "and is available on [GitHub](https://github.com/mbeyeler/opencv-machine-learning).*\n",
    "\n",
    "*Note that this excerpt contains only the raw code - the book is rich with additional explanations and illustrations.\n",
    "If you find this content useful, please consider supporting the work by\n",
    "[buying the book](https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv)!*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--NAVIGATION-->\n",
    "< [Building your first decision tree](05.01-Building-Your-First-Decision-Tree.ipynb) | [Contents](../README.md) | [Using Decision Trees for Regression](05.03-Using-Decision-Trees-for-Regression.ipynb) >"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Using Decision Trees to Diagnose Breast Cancer\n",
    "\n",
    "Now that we have built our first decision trees, it's time to turn our attention to a real dataset: The Breast Cancer Wisconsin dataset <https://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+(Diagnostic)>.\n",
    "\n",
    "In order to make the take feasible, the researchers performed feature extraction on the images, like we did in Chapter 4, Representing Data and Engineering Features. They went through a total of 569 images, and extracted 30 different features that describe the characteristics of the cell nuclei present in the images, including:\n",
    "\n",
    "- cell nucleus texture (represented by the standard deviation of the gray-scale values)\n",
    "\n",
    "- cell nucleus size (calculated as the mean of distances from center to points on the perimeter)\n",
    "\n",
    "- tissue smoothness (local variation in radius lengths)\n",
    "\n",
    "- tissue compactness\n",
    "\n",
    "The goal of the research was then to classify tissue samples into benign and malignant (a binary classification task)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Loading the dataset\n",
    "\n",
    "The full dataset is part of Scikit-Learn's example datasets:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "from sklearn import datasets\n",
    "data = datasets.load_breast_cancer()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As in previous examples, all data is contained in a 2-D feature matrix data.data, where the rows represent data samples, and the columns are the feature values:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(569, 30)"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.data.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "With a look at the provided feature names, we recognize some that we mentioned above:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['mean radius', 'mean texture', 'mean perimeter', 'mean area',\n",
       "       'mean smoothness', 'mean compactness', 'mean concavity',\n",
       "       'mean concave points', 'mean symmetry', 'mean fractal dimension',\n",
       "       'radius error', 'texture error', 'perimeter error', 'area error',\n",
       "       'smoothness error', 'compactness error', 'concavity error',\n",
       "       'concave points error', 'symmetry error', 'fractal dimension error',\n",
       "       'worst radius', 'worst texture', 'worst perimeter', 'worst area',\n",
       "       'worst smoothness', 'worst compactness', 'worst concavity',\n",
       "       'worst concave points', 'worst symmetry', 'worst fractal dimension'], \n",
       "      dtype='<U23')"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.feature_names"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Since this is a binary classification task, we expect to find exactly two target names:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['malignant', 'benign'], \n",
       "      dtype='<U9')"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.target_names"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's split the dataset into training and test sets using a healthy 80-20 split:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "import sklearn.model_selection as ms\n",
    "X_train, X_test, y_train, y_test = ms.train_test_split(data.data, data.target, test_size=0.2, random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((455, 30), (114, 30))"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape, X_test.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Building the decision tree"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "from sklearn import tree\n",
    "dtc = tree.DecisionTreeClassifier(random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,\n",
       "            max_features=None, max_leaf_nodes=None,\n",
       "            min_impurity_split=1e-07, min_samples_leaf=1,\n",
       "            min_samples_split=2, min_weight_fraction_leaf=0.0,\n",
       "            presort=False, random_state=42, splitter='best')"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dtc.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Since we did not specify any pre-pruning parameters, we would expect this decision tree to grow quite large and result in a perfect score on the training set:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.0"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dtc.score(X_train, y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "However, to our surprise, the test error is not too shabby, either:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.94736842105263153"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dtc.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "with open(\"tree.dot\", 'w') as f:\n",
    "    f = tree.export_graphviz(dtc, out_file=f,\n",
    "                             feature_names=data.feature_names,\n",
    "                             class_names=data.target_names)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we want to do some model exploration. For example, we mentioned above that the depth of a tree influences its performance. If we wanted to study this dependency more systematically, we could repeat building the tree for different values of `max_depth`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "max_depths = np.array([1, 2, 3, 5, 7, 9, 11])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For each of these values, we want to run the full model cascade from start to finish. We also want to record the train and test scores. We do this in a for loop:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "train_score = []\n",
    "test_score = []\n",
    "for d in max_depths:\n",
    "    dtc = tree.DecisionTreeClassifier(max_depth=d, random_state=42)\n",
    "    dtc.fit(X_train, y_train)\n",
    "    train_score.append(dtc.score(X_train, y_train))\n",
    "    test_score.append(dtc.score(X_test, y_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can plot the scores as a function of the tree depth using Matplotlib:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "plt.style.use('ggplot')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7efd5afd1ef0>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nercvv/xSqampSkhIkNPp1Hnnnaft27eHuiy0SExMVEVFhSSpoqJCCQkJIa6o5+BSaS9mWZaef/55\nDRgwQJdddlmoy4GkH/3oR/rRj34kSfrXv/6lN998U3fddVeIq0JSUpJSUlJUXFys9PR0ffnll0zi\nCTG3260dO3aosbFRUVFR+vLLL5WdnR3qstBi9OjRWrt2rXJzc7V27VqNGTMm1CX1GCzA24tt3bpV\nDz30kDIzM/3D2DfccIPOPvvsEFcG6WhwYzmQ8PD111/r+eefl9frVWpqqmbNmsXyBiH2pz/9SQUF\nBYqIiNDgwYM1c+ZMRUZGhrqsXueZZ57Rli1bVF1drcTERF1//fUaM2aMnn76aZWVlbEcSDcjuAEA\nANgE97gBAADYBMENAADAJghuAAAANkFwAwAAsAmCGwAAgE0Q3ADgJPzrX//SzJkzA/Lahw4d0vXX\nX6/m5uaAvD4A+yK4AUCIzZ49W1988UWoywBgAwQ3AAAAm+CRVwBsY/bs2frBD36gdevW6eDBgxo3\nbpxuuOEGLV26VFu3btWwYcP8K7Q/9dRTKiwsVFNTkwYPHqyf/OQnysjIkNfr1bx58zR58mRdfPHF\nMk1T8+fP11lnnaVrr732uO/d1NSkF198URs3blRSUpImTZrUar/H49FLL72kwsJCxcTE6NJLL9Ul\nl1wiybfC/969e+VwOPTZZ5+pf//+uvPOOzV48GA9++yzKisr02OPPSaHw6Frr71W559/viTpww8/\n1KuvvqqmpiZdeumluvrqqwP35QKwBUbcANjKJ598ogcffFC/+c1v9Omnn+rRRx/VDTfcoGXLlsk0\nTb399tuSpFGjRmnJkiVatmyZhgwZoiVLlkiSnE6nfvazn+lPf/qT9u3bpzVr1sg0zQ5D0WuvvaaD\nBw/q2Wef1S9/+UutXbvWv880TT322GMaPHiwXnjhBT300EN66623tHnzZv8xGzdu1Pnnn6+XXnpJ\nF1xwgZ544gl5vV797Gc/k9vt1v33369Vq1bpyiuv9J+zdetW/eY3v9GvfvUr/fnPf9a+ffu686sE\nYEMENwC2Mn36dCUlJcnlciknJ0dDhw7VkCFDFBUVpXPPPVe7d++WJE2ePFmxsbGKjIzUddddpz17\n9qiurk6SlJmZqauvvlpPPPGE3nzzTc2ZM0cOx4n/OPzHP/6hq6++WvHx8XK73br44ov9+3bu3Kmq\nqipde+21cjqd6tevn6ZMmaKCggL/MVlZWRo7dqycTqcuu+wyHTlyRDt27Djhe1533XWKiorS4MGD\nNWjQIO3Zs+dkvzYAPQSXSgHYSmJiov/nqKioNtuNjY0yTVN/+MMftH79elVVVckwDElSVVWV4uLi\nJEkTJkzQH//4R5133nnq379/h+9bUVGhlJQU/7bb7fb/XFpaqoqKCs2YMcPfZpqmRowY4d8+9lyH\nw6GUlBRVVFSc8D2TkpL8P0dHR6uhoaHDOgH0bAQ3AD3ORx99pI0bN+pXv/qV+vbtq7q6Ot16662t\njlm2bJnOPvtsff7559q6datycnJO+JpJSUkqLy9XRkaGJKmsrMy/z+12KzU11X85tj3l5eX+n03T\nVHl5uZKTk0/m4wHoxbhUCqDHqa+vl9PpVHx8vBobG/WHP/yh1f5169Zp9+7dmj17tm699Vbl5eV1\nOJp1/vnna/Xq1aqpqVF5ebneeecd/76hQ4cqNjZWa9asUVNTk0zT1DfffKOioiL/Mbt27dInn3yi\n5uZmvfXWW4qMjNSwYcMk+ULhoUOHuvEbANBTEdwA9DgTJkxQ3759NXPmTP385z/3ByTJN1K2cuVK\nzZ49WzExMbrwwguVlZWllStXnvA1r7vuOvXt21dz5szRww8/rPHjx/v3ORwO3X///fr66681e/Zs\n3X777XrhhRf899RJ0ujRo1VQUKBbb71V69at07333iun03fRIzc3V6+//rpmzJihv/zlL937ZQDo\nUQzLsqxQFwEAPdmf/vQnHThwQHfddVeoSwFgc4y4AQAA2ASTEwCgxcKFC1VYWNim/aqrrmLxWwBh\ngUulAAAANsGlUgAAAJsguAEAANgEwQ0AAMAmCG4AAAA2QXADAACwCYIbAACATfz/SHqtEyDW+CYA\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7efd5d2b7128>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 6))\n",
    "plt.plot(max_depths, train_score, 'o-', linewidth=3, label='train')\n",
    "plt.plot(max_depths, test_score, 's-', linewidth=3, label='test')\n",
    "plt.xlabel('max_depth')\n",
    "plt.ylabel('score')\n",
    "plt.ylim(0.85, 1.1)\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's do one more. What about the minimum numbers of samples required to make a node a leaf node?\n",
    "\n",
    "We repeat the procedure from above:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "train_score = []\n",
    "test_score = []\n",
    "min_samples = np.array([2, 4, 8, 16, 32])\n",
    "for s in min_samples:\n",
    "    dtc = tree.DecisionTreeClassifier(min_samples_leaf=s, random_state=42)\n",
    "    dtc.fit(X_train, y_train)\n",
    "    train_score.append(dtc.score(X_train, y_train))\n",
    "    test_score.append(dtc.score(X_test, y_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This leads to a plot that looks quite different from the one before:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7efd5af0bc50>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nHP9PSERERLLVJlqrtBYH8tqP1poY7o3kGA2GBjhutBYbNyIiIurzBEHA8EA1hgeqoas14vBlAw5d\n1rdEaxlNwMnCCpwsrECknxuSYzSYNMgbbirH2hOOjRsRERHJip+HCs/FBuDpkf7IvFmJ1Hw9Lmlb\nR2vVt0RrzYr0wRwHitZi40ZERESy1Jlorf++qMPe5mit5KEaxMo8WouNGxEREclem2itKwYczDeg\npLoRgPVoralDvKF2kd+ecGzciIiIyGF4uymxYIQ/nhpmjtZKzdPjXAfRWnNifBHq7WbHGXcNGzci\nIiJyOK2jtW6V1yO13WgtPUYH90NyjC8eGejZ56O12LgRERGRQwv9hWitc3ercU4m0Vps3IiIiMgp\nPBitlZqvR9btKpia94S7F621K1tr9fO+7kp8/HS0DWdsiY0bEREROZXW0VrFVQ04dNnQJlqrPYbm\nPePsiY0bEREROa0Bnq5torUO5OlxtVW0Vl/jWNsJExEREXXDvWit9+YMtvdUOsTGjYiIiKhZX9+c\nl40bERERkUywcSMiIiJqxdfd+lYg7b1uS3w4gYiIiKgVe2/50RFecSMiIiKSCTZuRERERDLBxo2I\niIhIJti4EREREckEGzciIiIimWDjRkRERCQTbNyIiIiIZIKNGxEREZFMsHEjIiIikgk2bkREREQy\nwcaNiIiISCbYuBERERHJBBs3IiIiIplg40ZEREQkE2zciIiIiGSCjRsRERGRTLBxIyIiIpIJNm5E\nREREMsHGjYiIiEgm2LgRERERyQQbNyIiIiKZYONGREREJBNs3IiIiIhkgo0bERERkUywcSMiIiKS\nCTZuRERERDLBxo2IiIhIJti4EREREckEGzciIiIimWDjRkRERCQTbNyIiIiIZEJlqy86d+4cdu7c\nCZPJhBkzZmDevHlt3q+qqsK2bdtQXFwMFxcXrFixAuHh4Z36LBEREZEzsMkVN5PJhB07duCNN97A\n1q1bcerUKdy6davNmD179mDw4MHYvHkzVq1ahV27dnX6s0RERETOwCaNW0FBAYKCgjBgwACoVCpM\nnDgRWVlZbcbcunULDz30EAAgJCQEWq0WBoOhU58lIiIicgY2adx0Oh38/f1bfu/v7w+dTtdmzKBB\ng3D69GkA5kZPq9VCp9N16rNEREREzsBm97j9knnz5mHXrl1YvXo1wsPDMWTIECgUXesr09LSkJaW\n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\nP91GtAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7efd5af84860>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 6))\n",
    "plt.plot(min_samples, train_score, 'o-', linewidth=3, label='train')\n",
    "plt.plot(min_samples, test_score, 's-', linewidth=3, label='test')\n",
    "plt.xlabel('min_samples_leaf')\n",
    "plt.ylabel('score')\n",
    "plt.ylim(0.9, 1)\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "What does this all mean? Refer to Chapter 5 for the answers."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--NAVIGATION-->\n",
    "< [Building your first decision tree](05.01-Building-Your-First-Decision-Tree.ipynb) | [Contents](../README.md) | [Using Decision Trees for Regression](05.03-Using-Decision-Trees-for-Regression.ipynb) >"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
